iT邦幫忙

2024 iThome 鐵人賽

DAY 30
1

今天是30天挑戰的最後一天啦,我們就來介紹一下什麼是web server吧

什麼是 Web Server?

「網路伺服器」(web server)可以指軟體、也可以指硬體、還可以指它們共同運作的狀態。

  1. 以硬體來說,web server 是存放網路伺服器軟體、還有網站檔案(如 HTML 文件、圖片、CSS 樣式表、JavaScript 檔案)的電腦。它會連上網際網路(Internet)並且能和其他連上網的設備做物理數據交換。
  2. 以軟體來說,web server 包含了一連串控制網路用戶如何訪問託管檔案 ── 至少有 HTTP 伺服器 ── 的檔案。HTTP 伺服器是其中一個部份,它理解 URLs(網路地址)與 HTTP(瀏覽器用來觀察網頁的協議)。它能透過域名(domain name)訪問託管的網站(如 mozilla.org)、並將其內容遞送到終端用戶(end-user)的設備上。

可以想像是我們看到的網站都是Web Server提供的結果。

什麼是 Nginx?

Nginx 是一款開源的網路伺服器,能夠用於多種網路服務,包括 HTTP 伺服器、反向代理伺服器、郵件代理伺服器等。Nginx 設計之初,就專為處理高並發、高流量的網路服務所需求的需求。其高效的效能與穩定的運作,讓 Nginx 在全球許多知名的網站中,都有其身影。

例如我們寫了一個前端,就可以透過Nginx來服務它,這樣我們的前端就活起來了! 而不是只有本地的靜態文件而已。

什麼是 Apache?

Apache是一款由Apache軟體基金會所開發的Web伺服器軟體。這款軟體可以運行於多種作業系統。
它跟Nginx一樣,也是很常看見的web server

那麼我們就來比較一下這兩者的差別吧

Apache 與 Nginx 的比較:

  • 效能:Apache 在處理動態內容時性能良好,但處理大量靜態內容和高併發需求時性能不如 Nginx 快。Nginx 是事件驅動的,它的非同步的架構能更好地處理高併發需求。
  • 資源使用:Apache 傳統上使用多線程模型,每個請求佔用一個進程或線程,這在高流量時會增加資源消耗。Nginx 使用非同步事件驅動架構,在相同的情況下能節省更多的內存和 CPU 資源。
  • 配置靈活性:Apache 允許使用 .htaccess 文件進行目錄級別的配置,非常適合共享主機或需要靈活配置的應用。Nginx 不支持 .htaccess,但因此性能更好。

總結

我們可以根據需求選擇要用 Nginx 還是 Apache,如果要提供靜態內容,例如純前端,就可以使用 Nginx,如果要動態的內容,例如後端,就可以使用Apache。

reference

https://tw.alphacamp.co/blog/nginx

https://developer.mozilla.org/zh-TW/docs/Learn/Common_questions/Web_mechanics/What_is_a_web_server

https://dsensj.com/blog/apache%E6%98%AF%E4%BB%80%E9%BA%BC/


上一篇
Day 29 Monitoring
系列文
Backend Developer的學習Roadmap30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
RichardW
iT邦新手 4 級 ‧ 2024-10-14 20:45:09

恭喜完賽 ‧★,::‧( ̄▽ ̄)/‧:‧°★*

我要留言

立即登入留言